package com.fjwt.gz.db.dto;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

/**
 * <p>
 * 公众号菜单表（只有type为click时，才会触发自动回复事件）
 * </p>
 *
 * @author shiyonghao
 * @since 2025-04-09
 */
@Data
public class OfficialMenuDTO {

    /**
     * 公众号菜单主键
     */
    private Long menuId;

    /**
     * 公众号appid
     */
    private String officialAppId;

    /**
     * 菜单的响应动作类型，view表示网页类型，click表示点击类型，miniprogram表示小程序类型
     */
    private String type;

    /**
     * 菜单标题，不超过16个字节，子菜单不超过60个字节
     */
    private String name;

    /**
     * 排序值
     */
    private Integer sort;

    /**
     * 菜单KEY值，用于消息接口推送，不超过128字节（click等点击类型必须）
     */
    private String menuKey;

    /**
     * 网页 链接，用户点击菜单可打开链接，不超过1024字节。
     */
    private String url;

    /**
     * 要跳转的小程序的appid（仅认证公众号可配置）
     */
    private String appid;

    /**
     * 要跳转的小程序的页面路径
     */
    private String pagepath;

    /**
     * 父级菜单ID
     */
    private Integer pid;

    /**
     * 回复消息类型（text：文本；image：图片；voice：语音；video：视频；music：音乐；news：图文）
     */
    private String repType;

    /**
     * Text:保存文字
     */
    private String repContent;

    /**
     * imge、voice、news、video：mediaID
     */
    private String repMediaId;

    /**
     * 素材名、视频和音乐的标题
     */
    private String repName;

    /**
     * 视频和音乐的描述
     */
    private String repDesc;

    /**
     * 链接
     */
    private String repUrl;

    /**
     * 高质量链接
     */
    private String repHqUrl;

    /**
     * 缩略图的媒体id
     */
    private String repThumbMediaId;

    /**
     * 缩略图url
     */
    private String repThumbUrl;

    /**
     * 图文消息的内容
     */
    private String content;

    /**
     * 是否删除 0否 1是，默认0
     */
    private Integer isDeleted;

    /**
     * 状态 0上线 1下线
     */
    private Integer state;

    /**
     * 创建者id
     */
    private Long createdUid;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createdAt;

    /**
     * 更新建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updatedAt;

    /**
     * 更新者
     */
    private Long updatedUid;


}
